package com.ynet.middleground.user.bean;

import com.ynet.core.common.BaseReqObj;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
 * @program: 2019-10-12_userCenter
 * @description: 修改机构/ 部门请求对象
 * @author: DaiGaoLe
 * @create: 2019-10-24 17:25
 **/
@Data
@ApiModel(value = "修改机构、部门请求对象", description = "修改机构、部门请求对象")
public class ModifyOrganizationalStructureReq extends BaseReqObj {
    private static final long serialVersionUID = -8608626304145982391L;
    /**
     * 机构/部门id
     */
    @ApiModelProperty(value = "机构/部门id", notes = "机构/部门id", dataType = "Integer", required = true)
    @NotNull(message = "机构/部门id不能为空")
    private Integer organizationalId;
    /**
     * 机构/部门名称
     */
    @ApiModelProperty(value = "机构/部门名称", notes = "机构/部门名称", dataType = "String")
    private String organizationalName;

    /**
     * 负责人
     */
    @ApiModelProperty(value = "负责人", notes = "负责人", dataType = "String")
    private String responsiblePerson;

    /**
     * 联系地址(机构必填)
     */
    @ApiModelProperty(value = "联系地址(机构必填)", notes = "联系地址(机构必填)", dataType = "String")
    private String contactAddress;

    /**
     * 邮政编码
     */
    @ApiModelProperty(value = "邮政编码", notes = "邮政编码", dataType = "String")
    private String postalCode;

    /**
     * 是否可用(必填)，0-可用，1-不可用
     */
    @ApiModelProperty(value = "是否可用(必填)，0-可用，1-不可用", notes = "是否可用(必填)，0-可用，1-不可用", dataType = "String")
    private String flag;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话", notes = "电话", dataType = "String")
    private String phone;

    /**
     * 传真
     */
    @ApiModelProperty(value = "传真", notes = "传真", dataType = "String")
    private String facsimile;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", notes = "邮箱", dataType = "String")
    private String email;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", notes = "备注", dataType = "String")
    private String remark;

    /**
     * 渠道
     */
    @ApiModelProperty(value = "渠道", notes = "渠道", dataType = "String")
    private String modifyChannel;

    /**
     * 排序字段
     */
    @ApiModelProperty(value = "排序字段", notes = "排序字段", dataType = "Integer")
    private Integer sortNumber;
    
    /**
     * 父类id
     */
    @ApiModelProperty(value = "父类id", notes = "父类id", dataType = "Integer")
    private Integer parentId;
    
    /**
     * 山港易付id
     */
    @ApiModelProperty(value = "山港易付id", notes = "山港易付id", dataType = "String")
    private String sgyfId;
    
    /**
     * 证件种类,00-统一社会信用代码,01-组织机构代码证,02-营业执照,03-税务登记证,04-身份证
     * 05-护照，06-香港通行证，07-澳门通行证，08-台湾居民来往大陆通行证
     */
    @ApiModelProperty(
            value = "证件种类,00-统一社会信用代码,01-组织机构代码证,02-营业执照,03-税务登记证,04-身份证，" +
                    "05-护照，06-香港通行证，07-澳门通行证，08-台湾居民来往大陆通行证",
            notes = "证件种类,00-统一社会信用代码,01-组织机构代码证,02-营业执照,03-税务登记证,04-身份证，" +
                    "05-护照，06-香港通行证，07-澳门通行证，08-台湾居民来往大陆通行证",
            dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 2, max = 2, message = "长度为2")
    private String papersType;

    /**
     * 证件编号,
     * 当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,02时该字段为营业执照,03时该字段为税务登记证，
     * 04时该字段为身份证，
     * 05时该字段为护照，06时该字段为香港通行证，07时该字段为澳门通行证，08时该字段为台湾居民来往大陆通行证
     */
    @ApiModelProperty(
            value = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,02时该字段为营业执照,03时该字段为税务登记证，04时该字段为身份证，" +
                    "05时该字段为护照，06时该字段为香港通行证，07时该字段为澳门通行证，08时该字段为台湾居民来往大陆通行证",
            notes = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,02时该字段为营业执照,03时该字段为税务登记证，04时该字段为身份证，" +
                    "05时该字段为护照，06时该字段为香港通行证，07时该字段为澳门通行证，08时该字段为台湾居民来往大陆通行证",
            dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    private String papersNo;

    /**
     * 证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期
     */
    @ApiModelProperty(value = "证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期", notes = "证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期", dataType = "java.util.Date")
    private Date cerSdate;

    /**
     * 证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期
     */
    @ApiModelProperty(value = "证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期,长期为9999-12-31", notes = "证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期,长期为9999-12-31", dataType = "java.util.Date")
    private Date cerEdate;
    
    /**
     * 营业执照编号
     */
    @ApiModelProperty(value = "营业执照编号", notes = "营业执照编号", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    private String bussinessLicenseNo;
    
    /**
     * 营业执照有效期起
     */
    @ApiModelProperty(value = "营业执照有效期起", notes = "营业执照有效期起", dataType = "java.util.Date")
    private Date bussinessLicenseNoSdate;

    /**
     * 营业执照有效期止
     */
    @ApiModelProperty(value = "营业执照有效期止,长期为9999-12-31", notes = "营业执照有效期止,长期为9999-12-31", dataType = "java.util.Date")
    private Date bussinessLicenseNoEdate;
    
    /**
     * 税务登记证编号
     */
    @ApiModelProperty(value = "税务登记证编号", notes = "税务登记证编号", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    private String taxRegistrationNo;
    
    /**
     * 税务登记证有效期起
     */
    @ApiModelProperty(value = "税务登记证有效期起", notes = "税务登记证有效期起", dataType = "java.util.Date")
    private Date taxRegistrationNoSdate;

    /**
     * 税务登记证有效期止
     */
    @ApiModelProperty(value = "税务登记证有效期止,长期为9999-12-31", notes = "税务登记证有效期止,长期为9999-12-31", dataType = "java.util.Date")
    private Date taxRegistrationNoEdate;

}
